package com.zjsru.plan2024.oneday;

/**
 * 3192. 使二进制数组全部等于 1 的最少操作次数 II
 * @Author: cookLee
 * @Date: 2024-10-19
 */
public class MinOperations2 {

    /**
     * 主
     * \
     * 输入：nums = [0,1,1,0,1]
     * 输出：4
     * 解释：
     * 我们可以执行以下操作：
     * 选择下标 i = 1 执行操作，得到 nums = [0,0,0,1,0] 。
     * 选择下标 i = 0 执行操作，得到 nums = [1,1,1,0,1] 。
     * 选择下标 i = 4 执行操作，得到 nums = [1,1,1,0,0] 。
     * 选择下标 i = 3 执行操作，得到 nums = [1,1,1,1,1] 。
     * \
     * @param args args
     */
    public static void main(String[] args) {
        MinOperations2 minOperations2 = new MinOperations2();
        int[] nums = new int[]{0,1,1,0,1};
        System.out.println(minOperations2.minOperations(nums));
    }

    /**
     * 最小操作
     *
     * @param nums nums
     * @return int
     */
    public int minOperations(int[] nums) {
        int ans = 0;
        for (Integer num : nums) {
            //模拟反转情况,ans为偶数时说明值是原来的
            if (ans % 2 == num) {
                ans++;
            }
        }
        return ans;
    }

}
